# coding:utf-8
# @Time : 2021/4/30 16:51
# @File : wechat.py

from sqlalchemy import Column, String, Integer, ForeignKey, Text, Date
from sqlalchemy.orm import relationship, backref
from app.models import BaseModel


class Wechat(BaseModel):
    __tablename__ = 't_wechat'
    __table_args__ = {'mysql_engine': 'InnoDB', 'mysql_charset': 'utf8'}

    user_id = Column(Integer, nullable=False)
    # user_id = Column(Integer, ForeignKey('user.id'), nullable=False)

    code = Column(String(64))  # 微信会话代码
    open_id = Column(String(128))  # 微信资料：用户唯一ID
    union_id = Column(String(128))  # 微信资料：用户多应用唯一ID
    avatar_url = Column(Text)  # 微信资料：头像URL
    city = Column(String(64))  # 微信资料：城市
    country = Column(String(64))  # 微信资料：国家
    gender = Column(String(1))  # 微信资料：性别，0：未设置，1：男，2：女
    language = Column(String(20))  # 微信资料：语言
    nick_name = Column(String(100))  # 微信资料：昵称
    province = Column(String(64))  # 微信资料：省份

    # user = relationship('User', backref=backref('wechat', lazy='joined'))
    # 模型名称，反向引用（自己给这个关系取的名字[通过User引用时应该是User.(名字)]，lazy【True，...】）
    # lazy=True不直接查出
    # lazy="dynamic"只可以用在一对多和多对对关系中，不可以用在一对一和多对一中
    # lazy="select"一次性全部查出
    # lazy="joined"一次性全部查出，使用表关联查
